package com.xqboss.apps.vo.sys;

import com.fasterxml.jackson.annotation.JsonIgnore;
import com.xqboss.apps.enums.consumer.ConsumerTeamMemberTypeEnum;
import com.xqboss.apps.enums.consumer.ConsumerTeamRoleEnum;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

/**
 * @author Administrator
 */
@Data
public class SysUserTeamVo {
    private static final long serialVersionUID = 1L;

    @ApiModelProperty("用户id")
    private Long userId;

    @ApiModelProperty("认证状态（0-未认证；1-已认证）")
    private Integer authStatus;

    @ApiModelProperty("用户昵称")
    private String nickName;

    @ApiModelProperty("用户性别（0男 1女 2未知）")
    private String sex;

    @ApiModelProperty("队伍角色（1_管理员（队长） 2_普通成员（1_主成员 2_爸爸 3_妈妈 4_配偶））")
    private ConsumerTeamRoleEnum role;

    /**
     * 成员类型（1_主成员 2_爸爸 3_妈妈 4_配偶）；配偶 ——通过判断主成员的性别，来判断配偶展示名称，【男-妻子】【女-丈夫】
     */
    @ApiModelProperty(" 成员类型（1_主成员 2_爸爸 3_妈妈 4_配偶）")
    private ConsumerTeamMemberTypeEnum type;

    @ApiModelProperty("父级id（家庭成员中，非主成员存放主成员的id）")
    private Long parentId;

    @ApiModelProperty("头像地址")
    private String avatar;

    @ApiModelProperty("加入队伍天数")
    private Integer joinDay;

    @ApiModelProperty("当日队伍打卡收益")
    private BigDecimal punchIntegral;

    @ApiModelProperty("家庭成员当日已打卡总次数")
    private Integer totalPunch;

    @ApiModelProperty("家庭成员当日需打卡总次数")
    private Integer totalPunchs;

    @ApiModelProperty("增益值")
    private BigDecimal gainValue;

    //xx分钟前打卡~：选中角色后显示，显示对应角色的打卡状态，刚刚打卡、1分钟前打卡、1小时前打卡、今天还未开始打卡（超过24小时未打卡），数值计整数，不足取舍
    @ApiModelProperty("最近打卡时间（日期）")
    @JsonIgnore
    private Date recentPunchDate;

    @ApiModelProperty("最近打卡时间（0_刚刚打卡~；1_1分钟前打卡~;2_1小时前打卡~;3_今天还未开始打卡~）")
    private String recentPunch;

    @ApiModelProperty("好友邀请数")
    private long inviteNum;

    @ApiModelProperty("身份等级打卡系数")
    private int punchRatio;

    @ApiModelProperty("当前所选打卡时间段，可打卡的次数，若没选则为0次")
    private int punchCount;

    @ApiModelProperty("家庭成员")
    private List<SysUserTeamVo> familyMember;

}
